#include "MIKE_ZHOU_STM32_HAL.h"
#include <string.h>
#include <stdio.h>
#include <stdarg.h>

#ifdef HAL_PCD_MODULE_ENABLED
#include "usb_device.h"

void MZ_STM32_HAL_USB_VPC_Reset(void)
{
	__HAL_RCC_GPIOA_CLK_ENABLE();
	
	GPIO_InitTypeDef GPIO_InitStruct = {0};
	HAL_GPIO_WritePin(GPIOA, GPIO_PIN_11|GPIO_PIN_12, GPIO_PIN_RESET);
	GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_12;
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
	//delay_ms(50);
}


uint8_t MZ_STM32_HAL_USB_DebugPrintf(const char * fmt, ...)
{
	uint8_t len = 0;
	va_list ap;
	char tmp_buf[256];
	memset(tmp_buf,0,sizeof(tmp_buf));
	
	va_start(ap, fmt);
	len = vsnprintf(tmp_buf,sizeof(tmp_buf),fmt,ap);
	va_end(ap);
	
	CDC_Transmit_FS((uint8_t *)tmp_buf,len);
	return len;
}


#endif
